package Netty.buffer;

import java.nio.ByteBuffer;

/**
 * @author caihe
 * @date 2021/11/15 10:27
 */
public class ByteBufferDemo_mark {

    public static void main(String[] args) {
        ByteBuffer byteBuffer = ByteBuffer.allocate(6);

        byteBuffer.put((byte) 1);
        byteBuffer.put((byte) 2);
        byteBuffer.put((byte) 3);
        
        // 写入三个字节数据后进行标记  标记的是pos的位置
        byteBuffer.mark();
        byteBuffer.put((byte) 3);
        
        // 对buffer进行充值，恢复到mark时的状态
        byteBuffer.reset();
        
        // 切换为读取模式，此时有三个数据可供读取  因为reset的了  position和limit是mark时的  使用flip会将pos设置为limit
        byteBuffer.flip();
        
        byteBuffer.get();
        byteBuffer.get();
        byteBuffer.get();
        byteBuffer.get();
        byteBuffer.get();
        byteBuffer.get();
        byteBuffer.mark();
        
        

    }
}
